package com.zeroone.star.cpp.service;

import com.zeroone.star.cpp.config.FeignConfiguration;
import com.zeroone.star.project.dto.PageDTO;
import com.zeroone.star.project.dto.cpp.SampleDTO;
import com.zeroone.star.project.vo.JsonVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * <p>
 * 员工表 服务类
 * </p>
 *
 * @author lyx
 * @since 2024-10-29
 */
@FeignClient(
        name = "${cpp.sample.name}",
        url = "${cpp.sample.url}",
        fallbackFactory = CppServiceFallBack.class,
        configuration = FeignConfiguration.class
)
public interface ISampleService{

    /**
     * 远程调用分页查询数据
     * @param query 查询条件
     * @return 查询结果
     */
    @GetMapping("/sample")
    JsonVO<PageDTO<SampleDTO>> get(@RequestParam Map<String,Object> query);

    /**
     * 远程调用新增数据接口
     * @param dto 数据对象
     * @return 新增结果
     */
    @PostMapping("/sample")
    JsonVO<Long> post(@RequestBody SampleDTO dto);

    /**
     * 远程调用修改数据接口
     * @param dto 数据对象
     * @return 修改结果
     */
    @PutMapping("/sample")
    JsonVO<Long> put(@RequestBody SampleDTO dto);

    /**
     * 远程调用删除数据接口
     * @param id 主键
     * @return 删除结果
     */
    @DeleteMapping("/sample/{id}")
    JsonVO<Long> delete(@PathVariable("id") Long id);
}
